package com.ruoyi.shop.goods.service;

import java.util.List;

import com.ruoyi.common.core.domain.Ztree;
import com.ruoyi.shop.common.core.domain.ShopCategory;

/**
 * 商品分类Service接口
 * 
 * @author xuxiang
 * @date 2021-11-22
 */
public interface IShopGoodsCategoryService {

	/**
	 * 查询商品分类
	 * 
	 * @param categoryId 商品分类主键
	 * @return 商品分类
	 */
	public ShopCategory selectCategoryById(Long categoryId);

	/**
	 * 查询商品分类
	 * 
	 * @param parentId 商品分类父主键
	 * @return 商品分类
	 */
	public List<ShopCategory> selectCategoryByParentId(Long parentId);

	/**
	 * 查询商品分类列表
	 * 
	 * @param category 商品分类
	 * @return 商品分类
	 */
	public List<ShopCategory> selectCategoryList(ShopCategory category);

	/**
	 * 新增商品分类
	 * 
	 * @param category 商品分类
	 * @return 结果
	 */
	public int insertCategory(ShopCategory category);

	/**
	 * 修改商品分类
	 * 
	 * @param category 商品分类
	 * @return 结果
	 */
	public int updateCategory(ShopCategory category);

	/**
	 * 批量商品分类
	 * 
	 * @param categoryId 商品分类主键
	 * @return 结果
	 */
	public int deleteCategoryById(Long categoryId);

	/**
	 * 根据父ID查询数量
	 * 
	 * @param parentId 商品分类父主键
	 * @return
	 */
	public int selectCategoryCount(Long parentId);

	/**
	 * 查询分类树（排除下级）
	 * 
	 * @param category
	 * @return
	 */
	public List<Ztree> selectCategoryTreeExcludeChild(ShopCategory category);

	/**
	 * 查询所有可用分类及子类
	 * 
	 * @return
	 */
	public List<ShopCategory> queryCategorys();

}
